
<style type="text/css"> 

 .annotSet {  /* Annotation Set - A grouping which spans a complete set of
                                  linked annotations. */
   border-right: 1px solid;
   padding-right: 10px;
 }

 .bluediv {  /* The style for every other line.  Used to create
                a report effect */
    background: url("bluegrad.jpg")top right repeat-y;
    background-color: #bacdff;
    margin-bottom: 5px;
    margin-top: 5px;
 } 

 pre {      /* Required change in pre formatting.  This fixes problems
               with spacing inside of annotSet div tags */
  margin: 0px 0px 0px 0px;
  font-family: monospace;
 }

 .nound {
   font-weight:bold;
   color:navy;
   text-decoration:none;
 }

</style>


<script language="javascript">

  /** JavaScript to detect text resizing events.  Culled verbatim 
   ** from Lawrence Carvalho's great article on the subject
   **/

  /** 
   *  @fileoverview TextResizeDetector
   * 
   *  Detects changes to font sizes when user changes browser settings
   *  <br>Fires a custom event with the following data:<br><br>
   * 	iBase  : base font size  	
   *	iDelta : difference in pixels from previous setting<br>
   *  	iSize  : size in pixel of text<br>
   *  
   *  * @author Lawrence Carvalho carvalho@uk.yahoo-inc.com
   * @version 1.0
   */

  /**
   * @constructor
   */
  TextResizeDetector = function() { 
    var el  = null;
    var iIntervalDelay  = 200;
    var iInterval = null;
    var iCurrSize = -1;
    var iBase = -1;
    var aListeners = [];
    var createControlElement = function() {
      el = document.createElement('span');
      el.id='textResizeControl';
      el.innerHTML='&nbsp;';
      el.style.position="absolute";
      el.style.left="-9999px";
      var elC = document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID);
      // insert before firstChild
      if (elC)
        elC.insertBefore(el,elC.firstChild);
      iBase = iCurrSize = TextResizeDetector.getSize();
    };

    function _stopDetector() {
      window.clearInterval(iInterval);
      iInterval=null;
    };
    function _startDetector() {
      if (!iInterval) {
        iInterval = window.setInterval('TextResizeDetector.detect()',
                                       iIntervalDelay);
      }
    };
 	
    function _detect() {
      var iNewSize = TextResizeDetector.getSize();
  		
      if(iNewSize!== iCurrSize) {
        for (var i=0;i <aListeners.length;i++) {
          aListnr = aListeners[i];
          var oArgs = {  iBase: iBase,iDelta:((iCurrSize!=-1) ? iNewSize - iCurrSize + 'px' : "0px"),iSize:iCurrSize = iNewSize};
          if (!aListnr.obj) {
            aListnr.fn('textSizeChanged',[oArgs]);
  	  }
          else  {
  	    aListnr.fn.apply(aListnr.obj,['textSizeChanged',[oArgs]]);
  	  }
        }
      }
      return iCurrSize;
    };

    var onAvailable = function() {
      if (!TextResizeDetector.onAvailableCount_i ) {
        TextResizeDetector.onAvailableCount_i =0;
      }
      if (document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID)) {
        TextResizeDetector.init();
        if (TextResizeDetector.USER_INIT_FUNC){
          TextResizeDetector.USER_INIT_FUNC();
        }
        TextResizeDetector.onAvailableCount_i = null;
      }
      else {
        if (TextResizeDetector.onAvailableCount_i<600) {
          TextResizeDetector.onAvailableCount_i++;
  	setTimeout(onAvailable,200)
        }
      }
    };
    setTimeout(onAvailable,500);

    return {
      /*
       * Initializes the detector
       * 
       * @param {String} sId The id of the element in which to 
       *   create the control element
       */
       init: function() {
         createControlElement();		
         _startDetector();
       },
       /**
        * Adds listeners to the ontextsizechange event. 
        * Returns the base font size
        * 
        */
        addEventListener:function(fn,obj,bScope) {
          aListeners[aListeners.length] = {
            fn: fn,
            obj: obj
          }
          return iBase;
        },
       /**
        * performs the detection and fires textSizeChanged event
        * @return the current font size
        * @type {integer}
        */
        detect:function() {
          return _detect();
        },
       /**
        * Returns the height of the control element
        * 
        * @return the current height of control element
        * @type {integer}
        */
        getSize:function() {
          var iSize;
          return el.offsetHeight;
  		 		
        },
       /**
        * Stops the detector
        */
        stopDetector:function() {
          return _stopDetector();
        },
       /*
        * Starts the detector
        */
        startDetector:function() {
          return _startDetector();
        }
      }
  }();
  
  TextResizeDetector.TARGET_ELEMENT_ID = 'doc';
  TextResizeDetector.USER_INIT_FUNC = null;

  // Setup the font-resize listener
  function init()  
  {
     var iBase = TextResizeDetector.addEventListener(onFontResize,null);
  }

  function onFontResize(e,args) 
  {
     adjustRepeatTableWidth();
  }

  //id of element to check for and insert control
  TextResizeDetector.TARGET_ELEMENT_ID = 'repeatTable';

  //function to call once TextResizeDetector has init'd
  TextResizeDetector.USER_INIT_FUNC = init;




  /**
   ** Our code to handle page specific elements
   **/

  // Setup the table expansion/collapse handler
  function toggleDiv(divid){
    if(document.getElementById(divid).style.display == 'none'){
      document.getElementById(divid).style.display = 'block';
    }else{
      document.getElementById(divid).style.display = 'none';
    }
  }

  // Setup the table resize method
  function adjustRepeatTableWidth() 
  {
    var numInsertionLevels = 3;
    var pixelPaddingPerLevel = 10;
    var objColHeaderText = document.getElementById("colHeaderText");

    if ( objColHeaderText != null ) 
    {
      var newWidth = objColHeaderText.offsetWidth + 
                     ( pixelPaddingPerLevel * (numInsertionLevels - 1) ) + 30; 
      document.getElementById("repeatTable").style.width = newWidth + "px";
    }
  }
  
  function toggleAllHsps() 
  {
    var idx = 1;
    while( document.getElementById('hsps'+idx) != null ) {
      toggleDiv( 'hsps'+idx );
      idx++;
    }
    return false;
  }

  function openAllHsps(){
    var idx = 1;
    while( document.getElementById('hsps'+idx) != null ) {
      document.getElementById('hsps'+idx).style.display = 'block';
      idx++;
    }
    return false;
  }

  function closeAllHsps(){
    var idx = 1;
    while( document.getElementById('hsps'+idx) != null ) {
      document.getElementById('hsps'+idx).style.display = 'none';
      idx++;
    }
    return false;
  }

</script>



<body onload="adjustRepeatTableWidth()">

<a href="javascript:;" onmousedown="closeAllHsps();">[ close all hsps ]</a>
<a href="javascript:;" onmousedown="openAllHsps();">[ open all hsps ]</a>
